<?php

class Usuario_adm extends CI_Controller {

    public function __construct() {
        parent::__construct();
        permissao('usuario', 'visualizar', get_user(), true);
    }

    public function index() {
        autenticar();
        if (isset($_GET['usuario'])) {
            $data['usuario_id'] = $_GET["usuario"];

            $data['usuario'] = $this->db
                            ->where('usuarios_id', $_GET['usuario'])
                            ->get('usuarios')->row();




            $data['empresas'] = $this->db
                            ->where('pessoasusuarios_usuario', $data['usuario_id'])
                            ->get('pessoasusuarios')->result();
        }

        $data['pagina'] = 'usuario/usuario_adm';
        $this->load->view('home/contrato_view', $data);
    }

    public function salvar() {
        if (isset($_POST['usuario_id'])) {
            $this->editar($_POST);
        } else {
            $this->inserir($_POST);
        }
    }

    public function inserir() {
        autenticar();

        $dados = array(
            'usuarios_username' => $this->input->post('usuario_username'),
            'usuarios_nome' => $this->input->post('usuario_nome'),
            'usuarios_email' => $this->input->post('usuario_email'),
            'usuarios_tipo' => 1,
            'usuarios_dataCadastro' => date("Y-m-d") 
        );


        if ($this->input->post('usuario_senha')) {
            $dados['usuarios_senha'] = sha1($this->input->post('usuario_senha'));
        }

        $this->db->insert('usuarios', $dados);
        $id_user = $this->db->insert_id();


        $contratos = $this->input->post('contratos');

        $oEmpresa = new Pessoas_Model();
        
        foreach ($contratos as $contrato) {
            
            $empresas = $oEmpresa->getDadosEmpresasGruposUsuarioPorContrato($contrato);
            
            
            foreach ($empresas as $empresa) {


            $dadospessoas = array(
                'pessoasusuarios_usuario' => $id_user,
                'pessoasusuarios_pessoa' => $empresa->pessoas_id
            );


            $this->db
                    ->insert('pessoasusuarios', $dadospessoas);
        }
            
            
            
            
            
        }
        

        redirect(base_url('index.php/usuario_adm?usuario=' . $id_user));
    }

    public function editar() {
        autenticar();
        error_reporting(0);
        $id_user = $this->input->post('usuario_id');


        $dados = array(
            'usuarios_username' => $this->input->post('usuario_username'),
            'usuarios_nome' => $this->input->post('usuario_nome'),
            'usuarios_email' => $this->input->post('usuario_email')
        );

        if ($this->input->post('usuario_senha')) {
            $dados['usuarios_senha'] = sha1($this->input->post('usuario_senha'));
        }

        $this->db
                ->where('usuarios_id', $this->input->post('usuario_id'))
                ->update('usuarios', $dados);


        
        
         $empresasContrato = $this->db
            ->where(array('contratos_id' => get_contrato()->contratos_id))
            ->join('grupospessoas', 'grupospessoas_pessoa = pessoas_id')
            ->join('grupos', 'grupos_id = grupospessoas_grupo')
            ->join('contratos', 'grupos_idcontrato = contratos_id')
            ->select('pessoas_id')
            ->get('pessoas')
            ->result();
        
         
            $empresasDoContrato .= "(";
        for($i=0;$i<=count($empresasContrato);$i++){
            $empresasDoContrato .= $empresasContrato[$i]->pessoas_id;
            if($empresasContrato[$i+1]!=""){
                $empresasDoContrato .= ",";
            }
            
         }
            $empresasDoContrato .= ")";
         
         
    

        $this->db
                ->where('pessoasusuarios_pessoa in '.$empresasDoContrato)
                ->where('pessoasusuarios_usuario', $id_user)
                ->delete('pessoasusuarios');



        $empresas = $this->input->post('pessoas');

        foreach ($empresas as $empresa) {


            $dadospessoas = array(
                'pessoasusuarios_usuario' => $id_user,
                'pessoasusuarios_pessoa' => $empresa,
            );


            $this->db
                    ->insert('pessoasusuarios', $dadospessoas);
        }





        redirect(base_url('index.php/usuario?usuario=' . $this->input->post('usuario_id')));
    }

    public function excluir() {
        $this->db
                ->where('usuarios_id', $this->input->post('usuario_id'))
                ->delete('usuarios');
        redirect(base_url('index.php/usuario/'));
    }

//    public function consultar_todos() {
//
//        $data['usuarios'] = $this->db->get('usuarios')->result();
//        $data['pagina'] = 'usuario/usuario';
//        $this->load->view('home/index_view', $data);
//    }

    public function permissoes() {

        $data['usuarios'] = $this->db->get('usuarios')->result();
        $data['pagina'] = 'usuario/permissoes';
        $this->load->view('home/index_view', $data);
    }

    public function salvar_permissoes() {

        autenticar();
        $permissao_usuario = "";
        $permissoes = $this->input->post('permissoes');

        $id_user = $this->input->post('usuario_id');

        foreach ($permissoes as $permissao) {
            $permissao_usuario .= $permissao . ",";
        }

        $dados = array(
            'usuarios_permissoes' => $permissao_usuario,
        );



        $this->db
                ->where('usuarios_id', $id_user)
                ->update('usuarios', $dados);



        redirect(base_url('index.php/usuario?usuario=' . $id_user));
    }

public function consultar_todos() {

        $this->load->model('Usuarios_Model');
        $objUsuarios = new Usuarios_Model(); 
        $data['usuarios'] = $objUsuarios->getDadosTodosAdmin();
            
            
            $data['pagina'] = 'usuario/consultar_todas_adm';
            $this->load->view('home/contrato_view', $data);
    }
    
    
    
}
